package com.dtt.company.employee.service;

import java.util.List;

import com.dtt.company.department.model.DepartmentModel;
import com.dtt.company.employee.dao.EmployeeDao;
import com.dtt.company.employee.model.EmployeeModel;
import com.dtt.company.util.FmtEmpty;

//业务层/逻辑层--业务逻辑--增删改查
//目的：在某个功能操作发生后，最终能保证数据库中的数据是正确的（不能脏数据）
//增--判断主键是否重复
//删
//改
//查多个--模糊查询
//查一个 --主键查询
/**
 *
 * @author Dtt
 * @return
 */

public class EmployeeService {

	private EmployeeDao dao=new EmployeeDao();

	//返回--为了在调用该方法之后，通过返回结果，知道该方法调用过程中的执行情况
	public String insert(EmployeeModel model) {
		//添加的逻辑主键（账号）存在时，不允许添加
		EmployeeModel mdb=selectModel(model);
		if(mdb==null) { 
			Integer result=dao.insert(model);
			return String.valueOf(result);
		} 
		return "E";
	}
	
	public String delete(EmployeeModel model) {
		Integer result=dao.delete(model);
		return String.valueOf(result);
	}
	
	public String update(EmployeeModel model) {
		Integer result=dao.update(model);
		System.out.println("result is ==="+result+model.getCode()+"##"+model.getPsd());
		return String.valueOf(result);
	}
	
	/**
	 *多条件模糊查询出一些记录
	 * @author Dtt
	 * @return
	 */
	public List<EmployeeModel> select(EmployeeModel model) {
		String code=model.getCode();
		if(code!=null)
			model.setCode("%"+code+"%") ;
		String name=model.getName();
		if(name!=null)
			model.setName("%"+name+"%");
		return dao.select(model);
	}

	/**
	 * 根据逻辑主键查询出唯一的记录，主键不存在返回null
	 * @author Dtt
	 * @return
	 */
	public EmployeeModel selectModel(EmployeeModel model) {
		EmployeeModel temp=new EmployeeModel();
		temp.setCode(model.getCode());
		List<EmployeeModel> list = dao.select(temp);
		if(FmtEmpty.isEmpty(list)) {
			return null;
		}
		return list.get(0);
		
	}

	/**
	 *账号登录  返回0--账号不存在，1-登录成功，2-密码错误
	 * @author Dtt
	 * @return
	 */
//	public String login(EmployeeModel model) {
//		EmployeeModel mdb=selectModel(model);//用账号去查，可得出账号是否存在，再进一步可判断密码是否正确
//		if(mdb==null)
//			return "0";
//		if(!mdb.getPsd().equals(model.getPsd()))
//			return "2";
//		
//		return mdb.getPsd().equals(model.getPsd()) ? "1" : "2";
//	}
	
	//分页：根据多条件的模糊查询的数据总数
	public int selectCount(EmployeeModel model) {
		EmployeeModel mdb=new EmployeeModel();
		String code=model.getCode();
		mdb.setCode(code == null ? "%%":"%"+code+"%");
		String name=model.getName();
		mdb.setName(name == null ? "%%":"%"+name+"%");
		mdb.setPageOn(false);
		return dao.selectCount(mdb);
		
	}
}
